SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[parLicenciasPorCategoriaSemestreIniciadasEnPeriodo]

@AñoDesde INT, 
@AñoHasta INT, 
@Categoria INT,
@Privados VARCHAR(1)

AS

SET NOCOUNT ON
SET DATEFORMAT DMY

----- CANTIDAD DE LICENCIAS QUE INICIARON EN EL PERIODO INDICADO
CREATE TABLE #LicenciasAbiertas (Año INT, Semestre VARCHAR(10), Categoria VARCHAR(50), Descripcion VARCHAR(100), CantidadLicencias INT)
INSERT #LicenciasAbiertas
SELECT YEAR(SSA.FechaAlta) Año, CASE WHEN month(SSA.FechaAlta) BETWEEN 1 AND 6 THEN '1º Sem.' ELSE '2º Sem.' END Semestre,    
       CLic.Descripcion AS Categoria,  Lic.Descripcion , COUNT (distinct ssa.Licencia) CantidadLicencias
	FROM TB_SubserviciosAgentes AS SSA 
	INNER JOIN TB_ServiciosAgentes AS SA ON SSA.ServicioAgente = SA.IdServicioAgente
	INNER JOIN Tb_Organizaciones AS Org ON SA.UbicacionOrig = Org.IdOrganizaciones
	INNER JOIN Tb_Licencias AS Lic ON SSA.Licencia = Lic.IdLicencia
	INNER JOIN tb_CategoriasDeLicencia CLic ON CLic.idCategoriaLicencia = Lic.Categoria 
	WHERE Org.EsPrivada = @Privados  
          AND Org.CUISE>300
	  AND Lic.Categoria = @Categoria
	  AND (YEAR(SSA.FechaAlta) >= @AñoDesde AND YEAR(SSA.FechaAlta) <= @AñoHasta)
	GROUP BY SA.Agente, CLic.Descripcion, Lic.Descripcion,  SSA.FechaAlta
	ORDER BY Lic.Descripcion,  SSA.FechaAlta

SELECT Año, Semestre, Categoria, Descripcion, SUM(CantidadLicencias) CantLicencias
	FROM #LicenciasAbiertas
	GROUP BY Año, Semestre, Categoria, Descripcion
	ORDER BY Categoria, Descripcion, Año, Semestre
GO
GRANT EXECUTE ON  [dbo].[parLicenciasPorCategoriaSemestreIniciadasEnPeriodo] TO [public]
GO
